The effectiveness and reliability of information transmission are two important indices for evaluating the communication system, and in order to increase the reliability of information transmission, it is usually required to carry out channel encoding on the information so as to increase certain redundancy and enable the codeword to have automatic error check and error correction abilities. However, more redundancy does not mean much better, in order to take the effectiveness of information transmission into consideration, it is hoped that better decoding performance at the receiver can be obtained by way of designing an excellent decoding method in case of certain redundancy. A simulation model of the digital communication system is as shown in FIG. 1.
Low Density Parity Check (abbreviated as LDPC) code is a sparse check matrix based linear packet code proposed by Gallager in 1962. In 1996, MacKay and Neal rediscovered the LDPC code and proved that its performance is quite approximate to Shannon's limit. In some existing communication systems, such as DVB (Digital Video Broadcasting), WiMAX (Worldwide Interoperability for Microwave Access) and CMMB systems, the LDPC code is used as channel encoding. According to the distribution of element 1 in the check matrix H of the LDPC code, the LDPC code generated thereby can be divided into regular code and irregular code: if there are r fixed 1 in each row of the matrix H and there is c fixed 1 in each column, then the LDPC code generated thereby is referred to as (c,r) regular code; and if the number of element 1 is unfixed in the row and column of H, the LDPC code generated thereby is an irregular code. In the CMMB system, the (3,6) regular code with 1/2 code rate and (3,12) regular code with 3/4 code rate are taken as a part of channel encoding, and the codeword lengths thereof are both 9216.
In the CMMB system, the check matrix H of the LDPC code can be created by cycle shift using a codebook. When 1/2 code rate is used, the codebook is a 18×6 matrix, and what is stored therein is the locations of non-zero elements of the previous 18 rows of the H matrix, and the codebook can be circularly right shifted by 36 bits every 18 rows to obtain the locations of the non-zero elements of other rows of the H matrix. When 3/4 code rate is used, the codebook is a 9×12 matrix, and what is stored therein is the locations of non-zero elements of the previous 9 rows of the HH matrix, and the codebook can be circularly right shifted by 36 bits every 9 rows to obtain the locations of the non-zero elements of other rows of the H matrix. Such structure can greatly reduce the storage space of the H matrix.
The codebook to generate the H matrix when 1/2 code rate is used is as follows:
0,6,12,18,25,300,7,19,26,31,56640,8,13,20,32,82701,6,14,21,3085,89591,15,27,33,9128,91881,9,16,34,8485,90932,6,28,35,4156,77602,10,17,7335,7545,91382,11,22,5278,8728,89623,7,2510,4765,8637,88753,4653,4744,7541,9175,91983,23,2349,9012,9107,91684,7,29,5921,7774,89464,7224,8074,8339,8725,92124,4169,8650,8780,9023,91595,8,6638,8986,9064,92105,2107,7787,8655,9141,91715,24,5939,8507,8906,9173
The codebook to generate the H matrix when 3/4 code rate is used is as follows:
0,3,6,12,16,18,21,24,27,31,34,74940,4,10,13,25,28,5233,6498,7018,8358,8805,92110,7,11,19,22,6729,6831,7913,8944,9013,9133,91841,3,8,14,17,20,29,32,5000,5985,7189,79061,9,4612,5523,6456,7879,8487,8952,9081,9129,9164,92141,5,23,26,33,35,7135,8525,8983,9015,9048,91542,3,30,3652,4067,5123,7808,7838,8231,8474,8791,91622,35,3774,4310,6827,6917,8264,8416,8542,8834,9044,90892,15,631,1077,6256,7859,8069,8160,8657,8958,9094,9116
The output codeword C={c0, c1, . . . , c9215} of LDPC consists of an input information bit S={s0, s1, . . . , sK−1} and a check bit P={p0, p1, . . . , p9215−K}, as shown in the following formula:
      c          COL      ⁢                          ⁢      _      ⁢                          ⁢              ORDER        ⁡                  (          i          )                      =      {                                        p            i                                                0            ≤            i            ≤                          9215              -              K                                                                        s                          i              +              K              -              9216                                                                          9216              -              K                        ≤            i            ≤            9215                              
Where COL_ORDER(i) is a codeword bit mapping vector, K is the information bit length (K=4608 when 1/2 code rate is used, and K=6912 when 3/4 code rate is used).
In the CMMB system, RS (Reed Solomon) code is also employed as an external code to form a concatenated code with the LDPC code, and the encoding flow is as shown in FIG. 2. Each code element of the RS code is taken from a limited domain GF (256) and is a shortened code of (240,k), and k can take the value of 176, 192, 224, and 240, and according to different values, RS codes with different error correction ability can be obtained.
The decoding of the LDPC code usually employs a BP algorithm based soft decision decoding algorithm, such as normalized Min-Sum algorithm. The decoding method of RS code usually includes error correction decoding and erasure decoding, which has better decoding performance as compared to error correction decoding. Currently, as to the concatenated code composed of RS code and LDPS code, the conventional decoding algorithm is merely to store the decoding result of the LDPC code into a byte interleaver and then directly carry out RS decoding, therefore, only error correction decoding can be performed on RS code, which affects the decoding performance of the concatenated code to a certain extent.